// 1、return 一个promise
// 2、检查传入的是否是数组 错误信息：new TypeError（'Argument is not iterable'）
// 3、空数组直接兑现
// 4、处理全部兑现
    // 4-1 记录次数  当次数和数组长度一样则兑现记录的数组
    // 4-2 记录传入的值 需要index
// 5、处理第一个拒绝

Promise.all2=function(promises){
    return new Promise((resolve,reject)=>{
        if(!Array.isArray(promises))return reject(new TypeError('Argument is not iterable'))
        promises.length===0&&resolve(promises)
        let count=0,results=[]//这里应该写在遍历外面
        promises.forEach((p,index) => {
           
            Promise.resolve(p).then(res=>{
                count++
                results[index]=res
                count===promises.length&&resolve(results)
            },error=>{
                reject(error)
            })
        });
    })
}
const p=new Promise((resolve,reject)=>{
    resolve(1)
})
Promise.all2([p,'7']).then(res=>{console.log(res)}).catch(error=>{console.log('error2',error);})
   